#include <my_header.h>

/* Usage: ./4_mkdir pathname mode */
int main(int argc, char *argv[]){                                  
    ARGS_CHECK(argc, 3);    // 三个命令行参数，传入一个三位八进制数表示权限
    
    mode_t mode;
    sscanf(argv[2], "%o", &mode);   // 第三个命令行参数字符串转成八进制无符号数
    // umask 002
    int ret_dir = mkdir(argv[1], mode);
    ERROR_CHECK(ret_dir, -1, "mkdir");
    return 0;
}

/*
 *#include <sys/stat.h>
#include <sys/types.h>
int mkdir(const char *pathname, mode_t mode);

形式参数：

1. pathname: 要创建的目录的路径名。可以是绝对路径也可以是
相对路径名。
2. mode: 设置新目录的权限。这是一个八进制数，类似于 
chmod 的权限设置（例如，0775）。注意，最终的权限还会
受到进程的 umask 设置的影响。
返回值：

1. 成功时，mkdir 返回 0。
2. 失败时，返回 -1，并设置 errno 以指示错误的原因。
常见错误比如目录已存在等。
 *
 *
 * */
